// 小程序支持两种模块化导入导出语法
//  1. ES6 import from
//  2. require()
import { axios } from "../../request/myAxios";
const { formatTime } = require('../../utils/util');

// console.log(formatTime( new Date(1585816176 * 1000) ));

Page({

  /**
   * 页面的初始数据
   */
  data: {
    // 在页面中定义数据，用于传递给子组件渲染的
    tabs: [
      {
        id: 1,
        text: '全部'
      },
      {
        id: 2,
        text: '待付款'
      },
      {
        id: 3,
        text: '待发货'
      }
    ],
    // 订单列表
    orders: [],
    // 索引值，用于传递给子组件的更新状态的
    activeIndex: 0
  },

  onLoad(options) {
    // 获取页面参数，如果没有 type 默认值 1
    const type  = options.type || 1;
    // 页面加载的时候先发一次请求，获取全部订单
    this.getOrderData(type);
    // 分析 activeIndex 和 type 间的关系，把 activeIndex 传递给子组件
    this.setData({
      activeIndex: type - 1
    })
  },

  // 根据 type 的值，请求不同订单列表
  // type = 1 默认请求全部订单
  getOrderData(type = 1) {
    // 获取订单数据
    axios({
      url: '/my/orders/all',
      data: { type }
    }).then(res => {
      // console.log(res);
      const { orders } = res;
      // 通过遍历给每个订单数据添加
      orders.forEach(item => {
        item.format_time = formatTime(new Date(item.create_time * 1000));
      });
      this.setData({ orders });
    });
  },

  // 触发子组件事件时候，获取子组件传递的索引
  getChildIndex(e) {
    // console.log('子组件成功联系到父组件', e);
    const { index } = e.detail;
    // 根据 type 的值，请求不同订单列表
    const { tabs } = this.data;
    this.getOrderData( tabs[index].id );

    // 其实 type 参数就是 index+1
    // this.getOrderData(index + 1);
  }

});